home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / T-TPUG Old Monthly Disks / (c)tn.d64 / rats part2.d (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  7KB  |  226 lines

  1. 3 :PRINTCHR$(142):GX=49152:GOTO38
  2. 4 REM DRAW 3-D VIEW
  3. 5 N=2:A=H:B=V:FF=2^(F-1):SYS IN
  4. 6 Z=M%(A,B)*FF:IF((Z/16)AND1)=1THENRL=-1:GOSUB25:GOTO8
  5. 7 W=M%(A+S,B-R)*FF:IF((W/128)AND1)=1THENRL=-1:GOSUB21
  6. 8 IF((Z/64)AND1)=1THENRL=1:GOSUB25:GOTO10
  7. 9 W=M%(A-S,B+R)*FF:IF((W/128)AND1)=1THENRL=1:GOSUB21
  8. 10 IF((Z/128)AND1)=1THEN14
  9. 11 N=N+1:IFN>8THEN15
  10. 12 A=A+R:B=B+S:IFB<2 THEN15
  11. 13 GOTO6
  12. 14 GOSUB17
  13. 15 RETURN
  14. 16 REM**DRAW CENTER BACK
  15. 17 POKEHX,VX+DX(N):POKEHY,YU(N):SYS PL:POKEHY,YD(N):SYS LI
  16. 18 POKEHX,VX-DX(N):SYS LI:POKEHY,YU(N):SYS LI:POKEHX,VX+DX(N):SYS LI
  17. 19 RETURN
  18. 20 REM**DRAW BACK SIDE
  19. 21 POKEHX,VX+RL*DX(N-1):POKEHY,YU(N):SYS PL:POKEHX,VX+RL*DX(N):SYS LI
  20. 22 POKEHY,YD(N):SYS LI:POKEHX,VX+RL*DX(N-1):SYS LI
  21. 23 RETURN
  22. 24 REM**DRAW RIGHT OR LEFT SIDE
  23. 25 POKEHX,VX+RL*DX(N-1):POKEHY,YU(N-1):SYS PL:POKEHX,VX+RL*DX(N)
  24. 26 POKEHY,YU(N):SYS LI:POKEHY,YD(N):SYS LI:POKEHX,VX+RL*DX(N-1)
  25. 27 POKEHY,YD(N-1):SYS LI:POKEHY,YU(N-1):IFN>2 THEN SYS LI
  26. 28 RETURN
  27. 29 REM**GET KEYBOARD CHARACTER
  28. 30 GETA$:IFA$=""THEN30
  29. 31 RETURN
  30. 32 REM*ERROR SOUND
  31. 33 POKE59467,16:POKE59466,51:POKE59464,80
  32. 34 FORL=1TO50:NEXT
  33. 35 POKE59467,0:POKE59466,0:POKE59464,0
  34. 36 RETURN
  35. 37 REM**INITIALIZE
  36. 38 HX=828:HY=829:LINE=12288:PLOT=12665:INIT=12685:SCR=12725
  37. 39 FL=12726:FH=12730:TL=12734:TH=12738
  38. 40 PRINT"[147]RATS!
  39. 41 [153]"SOLVE A MAZE FROM A RAT'S EYE VIEW
  40. 42 INPUT"MAZE SIZE (H,V)   3,3[157][157][157][157][157]";H,V
  41. 43 IFH<3ORH>15 ORV<3ORV>15THEN40
  42. 44 PRINT"[147]PLEASE WAIT...
  43. 45 [139][194](LI)[178]32[175][194](LI[170]1)[178]33[175][194](LI[170]2)[178]48[167]48
  44. 46 CK[178]0:[129]L[178]12288[164]12761:[135]A:[151]L,A:CK[178]CK[170]A:[130]:[129]K[178]GX[164]GX[170]23:[135]GX
  45. 47 [151]K,GX:[130]:[139]CK[179][177]50144[167][153]"ERROR IN DATA STATEMENTS":[144]
  46. 48 N[178]H[172]V[171]1:H[178]H[170]1:V[178]V[170]1:D[178]1
  47. 49 [134]M%(17,17),WALK(100),CUT(5),DX(8),YU(8),YD(8)
  48. 50 [129]J[178]1[164]V[170]1:M%(1,J)[178]4:M%(H[170]1,J)[178]1:[130]
  49. 51 MX[178]79:MY[178]49:VX[178]39:VY[178]24:X[178]VX
  50. 52 [129]J[178]1[164]8:DX(J)[178]X:YU(J)[178][181](VY[171]X[172]VY[173]VX):YD(J)[178][181](VY[170]X[172](MY[171]VY)[173]VX)
  51. 53 X[178][181](X[172]7[173]10):[130]
  52. 54 [129]I[178]2[164]H:M%(I,V[170]1)[178]8:M%(I,1)[178]2:[129]J[178]2[164]V:M%(I,J)[178]15:[130]:[130]
  53. 55 R[178][181](H[173]2)[170]1:S[178][181](V[173]2)[170]1:M%(R,S)[178]15
  54. 56 [153]"LOADGENERATING MAZE...";:[141]2000
  55. 57 [143]**GENERATE RANDOM MAZE (ALGOGITHM FROM ROGERS AND STRASSBERGER)
  56. 58 [129]IWALK[178]1[164]N
  57. 59 I[178]Z
  58. 60 [139]M%(R[171]1,S)[177]14[167]I[178]I[170]1:CUT(I)[178]1
  59. 61 [139]M%(R,S[171]1)[177]14[167]I[178]I[170]1:CUT(I)[178]2
  60. 62 [139]M%(R[170]1,S)[177]14[167]I[178]I[170]1:CUT(I)[178]3
  61. 63 [139]M%(R,S[170]1)[177]14[167]I[178]I[170]1:CUT(I)[178]4
  62. 64 [139]I[178]0[167]75
  63. 65 [139]I[179][177]1[167]I[178][181]([187](I)[172]I)[170]1
  64. 66 [145] CUT(I)[137]67,69,71,73
  65. 67 M%(R,S)[178]M%(R,S)[171](M%(R,S)[175]1):R[178]R[171]1
  66. 68 M%(R,S)[178]M%(R,S)[171]((M%(R,S)[173]4)[175]1)[172]4:[137]86
  67. 69 M%(R,S)[178]M%(R,S)[171]((M%(R,S)[173]8)[175]1)[172]8:S[178]S[171]1
  68. 70 M%(R,S)[178]M%(R,S)[171]((M%(R,S)[173]2)[175]1)[172]2:[137]86
  69. 71 M%(R,S)[178]M%(R,S)[171]((M%(R,S)[173]4)[175]1)[172]4:R[178]R[170]1
  70. 72 M%(R,S)[178]M%(R,S)[171](M%(R,S)[175]1):[137]86
  71. 73 M%(R,S)[178]M%(R,S)[171]((M%(R,S)[173]2)[175]1)[172]2:S[178]S[170]1
  72. 74 M%(R,S)[178]M%(R,S)[171]((M%(R,S)[173]8)[175]1)[172]8:[137]86
  73. 75 [139]D[178][171]1[167]79
  74. 76 [139]R[179][177]H[167]83
  75. 77 [139]S[179][177]V[167]82
  76. 78 R[178]2:S[178]2:[137]84
  77. 79 [139]R[179][177]2[167]83
  78. 80 [139]S[179][177]V[167]82
  79. 81 R[178]H:S[178]2:[137]84
  80. 82 S[178]S[170]1:D[178][171]D:[137]84
  81. 83 R[178]R[170]D
  82. 84 [139]M%(R,S)[178]15 [167]75
  83. 85 [137]59
  84. 86 [130] IWALK
  85. 87 MH[178]H:MV[178]V:I[178][181]([187](1)[172](MH[171]1))[170]2
  86. 88 M%(I,1)[178]0:M%(I,2)[178]M%(I,2)[171]((M%(I,2)[173]8)[175]1)[172]8
  87. 89 H[178][181]([187](1)[172](MH[171]1))[170]2:H1[178]H:V1[178]V
  88. 90 [153]"LOADMAZE COMPLETED.":[141]2000:[137]105
  89. 91 [143]**DISPLAY TOP VIEW OF MAZE
  90. 92 HZ[178][181](79[173]MH):VZ[178][181](49[173]MV)
  91. 93 [158] IN:[151]214,24:[153][163]25);"   ON         ";
  92. 94 [151]HX,1[170]HZ:[151]HY,1[170]VZ:[158] PL:[151]HY,MV[172]VZ[170]1:[158] LI
  93. 95 [129]J[178]1[164]MV:[129]I[178]2[164]MH:N[178]M%(I,J):X[178]I[172]HZ[170]1:Y[178]J[172]VZ[170]1
  94. 96 [139] ((N[173]2)[175]1)[178]1[167][151]HX,X:[151]HY,Y:[158] PL:[151]HX,X[171]HZ:[158] LI
  95. 97 [139]((N[173]4)[175]1)[178]1[167][151]HX,X:[151]HY,Y:[158] PL:[151]HY,Y[171]VZ:[158]LI
  96. 98 [130]:[130]
  97. 99 [142]
  98. 100 [143]**MARK PLAYER(S POSITION
  99. 101 X[178]H[172]HZ[171]1:Y[178]V[172]VZ[171]1:[151]HX,X[170]1:[151]HY,Y[170]1:[158] PL
  100. 102 [151]HX,X[171]HZ[170]2:[151]HY,Y[171]VZ[170]2:[158] LI:[151]HY,Y[170]2:[158] PL
  101. 103 [151]HX,X[170]2:[151]HY,Y[171]VZ[170]2:[158] LI
  102. 104 [142]
  103. 105 [129]X[178]1[164]MH:[129]Y[178]1[164]MV:M%(X,Y)[178]M%(X,Y)[170]M%(X,Y)[172]16:[130]:[130]
  104. 106 [143]**PLAY
  105. 107 F[178][181]([187](1)[172]4)[170]1:[145]F[137]108,109,110,111
  106. 108 R[178]0:S[178][171]1:[137]112
  107. 109 R[178][170]1:S[178]0:[137]112
  108. 110 R[178]0:S[178][170]1:[137]112
  109. 111 R[178][171]1:S[178]0
  110. 112 [153]"LOADPRESS JWAIT TO TURN LEFT
  111. 113 PRINT"PRESS L[146] TO TURN RIGHT
  112. 114 [153]"PRESS SPACEWAIT TO GO FORWARD
  113. 115 PRINT"PRESS M[146] TO DISPLAY TOP VIEW OF MAZE
  114. 116 [153]" PRESS ANY KEY TO CONTINUE "
  115. 117 [141]30:[153]"LOAD";:[158]49152:[141]5
  116. 118 [143]**GET KEYSTROKE
  117. 119 [141]30
  118. 120 [145][171](A$[178]"J")[171]2[172](A$[178]"L")[171]3[172](A$[178]" ")[171]4[172](A$[178]"M")[137]122,124,131,136
  119. 121 [141]2000:[137]112
  120. 122 F[178]F[171]1:[139]F[179]1[167]F[178]4
  121. 123 [137]125
  122. 124 F[178]F[170]1:[139]F[177]4[167]F[178]1
  123. 125 [145]F[137]126,127,128,129
  124. 126 R[178]0:S[178][171]1:[137]130
  125. 127 R[178][170]1:S[178]0:[137]130
  126. 128 R[178]0:S[178][170]1:[137]130
  127. 129 R[178][171]1:S[178]0
  128. 130 [137]135
  129. 131 Z[178]M%(H,V):T[178]Z[172]2[174](F[171]1):T[178](T[173]128)[175]1:[139]T[178]1[167][141]2000:[137]119
  130. 132 NM[178]NM[170]1:[151]214,24:[153][163]25);"ONMOVE";NM;"";
  131. 133 [139] NM[179]100 [167]WALK(NM)[178]F
  132. 134 H[178]H[170]R:V[178]V[170]S:[139]V[179]2[167]147
  133. 135 [141]5:[137]119
  134. 136 [139][168]MS[167]138
  135. 137 [151]FL,218:[151]FH,49:[151]TL,0:[151]TH,128:[158] SC:[137]139
  136. 138 [141]92:[151]FL,0:[151]FH,128:[151]TL,218:[151]TH,49:[158] SC:MS[178][171]1
  137. 139 [141]101:[153]"YOU ARE FACING ";:[145]F[137]140,141,142,143
  138. 140 [153]"NORTH";:[137]144
  139. 141 [153]"EAST";:[137]144
  140. 142 [153]"SOUTH";:[137]144
  141. 143 [153]"WEST";
  142. 144 [153]".  PRESS ANY KEY TO":[153]"CONTINUE":[141]30
  143. 145 [153]"                                     ":[153]"       "
  144. 146 [141]5:[137]119
  145. 147 [141]2000:V[178]V1:H[178]H1:[139]MS[167][151]FL,218:[151]FH,49:[151]TL,0:[151]TH,128
  146. 148 [139]MS[167][158] SC:[137]150
  147. 149 [141]92
  148. 150 [141]101
  149. 151 [153]"CONGRATULATIONS-YOU'RE OUT IN";NM;"STEP!CMDSAVES"
  150. 152 [143]*DRAW PATH WALKED
  151. 153 [151]HX,H[172]HZ[171]HZ[173]2[170]1:[151]HY,V[172]VZ[171]VZ[173]2[170]1:[158] PL
  152. 154 [129]N[178]1[164]NM:[139]N[177]100[167]158
  153. 155 F[178]WALK(N):V[178]V[170](F[178]1)[171](F[178]3):H[178]H[170](F[178]4)[171](F[178]2)
  154. 156 [151]HX,H[172]HZ[171]HZ[173]2[170]1:[151]HY,V[172]VZ[171]VZ[173]2[170]1:[158]LI
  155. 157 [130]
  156. 158 [153]:[128]
  157. 160 [131] 32, 33, 48, 173, 58, 3, 133, 2
  158. 170 [131] 173, 59, 3, 133, 195, 32, 0, 49
  159. 180 [131] 173, 62, 3, 205, 63, 3, 16, 8
  160. 190 [131] 240, 6, 32, 173, 48, 76, 3, 48
  161. 200 [131] 96, 169, 128, 24, 109, 60, 3, 56
  162. 210 [131] 237, 58, 3, 141, 63, 3, 169, 128
  163. 220 [131] 24, 109, 61, 3, 56, 237, 59, 3
  164. 230 [131] 141, 64, 3, 162, 128, 142, 66, 3
  165. 240 [131] 142, 69, 3, 232, 142, 67, 3, 142
  166. 250 [131] 68, 3, 173, 63, 3, 201, 128, 176
  167. 260 [131] 11, 169, 127, 141, 68, 3, 169, 0
  168. 270 [131] 56, 237, 63, 3, 41, 127, 141, 63
  169. 280 [131] 3, 173, 64, 3, 201, 128, 176, 11
  170. 290 [131] 169, 127, 141, 67, 3, 169, 0, 56
  171. 300 [131] 237, 64, 3, 41, 127, 141, 64, 3
  172. 310 [131] 173, 63, 3, 205, 64, 3, 176, 32
  173. 320 [131] 174, 63, 3, 172, 64, 3, 142, 64
  174. 330 [131] 3, 140, 63, 3, 173, 68, 3, 141
  175. 340 [131] 66, 3, 173, 67, 3, 141, 69, 3
  176. 350 [131] 169, 128, 141, 67, 3, 141, 68, 3
  177. 360 [131] 173, 63, 3, 74, 141, 65, 3, 169
  178. 370 [131] 0, 141, 62, 3, 96, 173, 68, 3
  179. 380 [131] 56, 233, 128, 24, 109, 58, 3, 141
  180. 390 [131] 58, 3, 173, 69, 3, 56, 233, 128
  181. 400 [131] 24, 109, 59, 3, 141, 59, 3, 173
  182. 410 [131] 65, 3, 24, 109, 64, 3, 141, 65
  183. 420 [131] 3, 238, 62, 3, 173, 65, 3, 205
  184. 430 [131] 63, 3, 48, 35, 240, 33, 56, 237
  185. 440 [131] 63, 3, 141, 65, 3, 173, 66, 3
  186. 450 [131] 56, 233, 128, 24, 109, 58, 3, 141
  187. 460 [131] 58, 3, 173, 67, 3, 56, 233, 128
  188. 470 [131] 24, 109, 59, 3, 141, 59, 3, 96
  189. 480 [131] 169, 0, 133, 168, 169, 32, 133, 196
  190. 490 [131] 165, 2, 201, 80, 176, 56, 165, 195
  191. 500 [131] 201, 50, 176, 50, 234, 234, 234, 234
  192. 510 [131] 70, 2, 38, 168, 106, 38, 168, 133
  193. 520 [131] 195, 10, 10, 101, 195, 10, 10, 38
  194. 530 [131] 196, 10, 38, 196, 234, 234, 234, 133
  195. 540 [131] 195, 166, 168, 189, 99, 49, 133, 168
  196. 550 [131] 164, 2, 177, 195, 162, 15, 221, 103
  197. 560 [131] 49, 240, 4, 202, 16, 248, 96, 173
  198. 570 [131] 98, 49, 240, 6, 138, 5, 168, 170
  199. 580 [131] 208, 8, 138, 73, 255, 5, 168, 73
  200. 590 [131] 255, 170, 189, 103, 49, 164, 2, 145
  201. 600 [131] 195, 96, 1, 1, 2, 4, 8, 32
  202. 610 [131] 126, 123, 97, 124, 226, 255, 236, 108
  203. 620 [131] 127, 98, 252, 225, 251, 254, 160, 234
  204. 630 [131] 0, 173, 60, 3, 141, 58, 3, 133
  205. 640 [131] 2, 173, 61, 3, 141, 59, 3, 133
  206. 650 [131] 195, 32, 0, 49, 96, 162, 128, 160
  207. 660 [131] 0, 134, 254, 132, 253, 177, 253, 41
  208. 670 [131] 127, 201, 64, 48, 2, 169, 32, 145
  209. 680 [131] 253, 200, 208, 241, 232, 224, 132, 208
  210. 690 [131] 232, 169, 0, 170, 157, 58, 3, 232
  211. 700 [131] 224, 12, 208, 248, 96, 169, 218, 133
  212. 710 [131] 251, 169, 49, 133, 252, 169, 0, 133
  213. 720 [131] 253, 169, 128, 133, 254, 162, 4, 160
  214. 730 [131] 0, 177, 251, 145, 253, 136, 208, 249
  215. 740 [131] 230, 252, 230, 254, 202, 48, 2, 208
  216. 750 [131] 240, 96
  217. 1000 [131] 162, 0, 169, 1, 157, 0, 216, 157
  218. 1010 [131]  0, 217, 157, 0, 218, 157, 0, 219
  219. 1020 [131] 232, 208, 241, 96, 234, 234, 234, 0
  220. 2000 S0[178]54272:[129]E[178]S0[164]S0[170]28:[151]E,0:[130]
  221. 2010 [151]54296,15:[151]54277,51:[151]54278,211
  222. 2020 [151]54276,33:[151]54273,63:[151]54272,75
  223. 2030 [129]T[178]1[164]200:[130]:[151]54276,32:[129]T[178]1[164]100:[130]
  224. 2040 [129]E[178]S0[164]S0[170]28:[151]E,0:[130]
  225. 2050 [142]
  226.